// payment.js
const app = getApp();

Page({
  data: {
    orderId: '',
    amount: 0,
    paymentMethod: '',
    paymentMethodName: '',
    countdown: 1800, // 30分钟倒计时（秒）
    timer: null
  },

  onLoad: function(options) {
    // 获取参数
    if (options) {
      const orderId = options.orderId || '';
      const amount = options.amount || 0;
      const method = options.method || 'wechat';
      
      this.setData({
        orderId: orderId,
        amount: amount,
        paymentMethod: method,
        paymentMethodName: method === 'wechat' ? '微信支付' : '余额支付'
      });
      
      // 开始倒计时
      this.startCountdown();
    } else {
      wx.showToast({
        title: '订单信息有误',
        icon: 'none'
      });
      
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }
  },

  onUnload: function() {
    // 清除定时器
    if (this.data.timer) {
      clearInterval(this.data.timer);
    }
  },

  // 开始倒计时
  startCountdown: function() {
    this.data.timer = setInterval(() => {
      let countdown = this.data.countdown - 1;
      
      if (countdown <= 0) {
        // 倒计时结束，自动取消订单
        clearInterval(this.data.timer);
        this.cancelOrder();
        return;
      }
      
      this.setData({
        countdown: countdown
      });
    }, 1000);
  },

  // 确认支付
  confirmPayment: function() {
    // 显示加载中
    wx.showLoading({
      title: '支付中',
    });
    
    // 根据支付方式处理
    if (this.data.paymentMethod === 'wechat') {
      // 微信支付
      this.wechatPay();
    } else if (this.data.paymentMethod === 'balance') {
      // 余额支付
      this.balancePay();
    }
  },

  // 微信支付
  wechatPay: function() {
    // 实际项目中应该从服务器获取支付参数
    // 这里模拟支付成功
    setTimeout(() => {
      wx.hideLoading();
      
      wx.showToast({
        title: '支付成功',
        icon: 'success'
      });
      
      // 清除定时器
      if (this.data.timer) {
        clearInterval(this.data.timer);
      }
      
      // 跳转到订单详情页
      setTimeout(() => {
        wx.redirectTo({
          url: `/pages/order/detail?id=${this.data.orderId}`
        });
      }, 1500);
    }, 1500);
    
    // 实际项目中的微信支付调用
    // wx.cloud.callFunction({
    //   name: 'wechatPay',
    //   data: {
    //     orderId: this.data.orderId,
    //     amount: this.data.amount
    //   },
    //   success: res => {
    //     if (res.result && res.result.success) {
    //       const payParams = res.result.payParams;
    //       
    //       // 调用微信支付
    //       wx.requestPayment({
    //         ...payParams,
    //         success: () => {
    //           wx.showToast({
    //             title: '支付成功',
    //             icon: 'success'
    //           });
    //           
    //           // 清除定时器
    //           if (this.data.timer) {
    //             clearInterval(this.data.timer);
    //           }
    //           
    //           // 跳转到订单详情页
    //           setTimeout(() => {
    //             wx.redirectTo({
    //               url: `/pages/order/detail?id=${this.data.orderId}`
    //             });
    //           }, 1500);
    //         },
    //         fail: err => {
    //           console.error('支付失败', err);
    //           wx.showToast({
    //             title: '支付失败',
    //             icon: 'none'
    //           });
    //         }
    //       });
    //     } else {
    //       wx.showToast({
    //         title: res.result.message || '支付失败',
    //         icon: 'none'
    //       });
    //     }
    //   },
    //   fail: err => {
    //     console.error('调用支付失败', err);
    //     wx.showToast({
    //       title: '支付失败，请重试',
    //       icon: 'none'
    //     });
    //   },
    //   complete: () => {
    //     wx.hideLoading();
    //   }
    // });
  },

  // 余额支付
  balancePay: function() {
    // 实际项目中应该从服务器获取用户余额并处理支付
    // 这里模拟支付成功
    setTimeout(() => {
      wx.hideLoading();
      
      wx.showToast({
        title: '支付成功',
        icon: 'success'
      });
      
      // 清除定时器
      if (this.data.timer) {
        clearInterval(this.data.timer);
      }
      
      // 跳转到订单详情页
      setTimeout(() => {
        wx.redirectTo({
          url: `/pages/order/detail?id=${this.data.orderId}`
        });
      }, 1500);
    }, 1500);
    
    // 实际项目中的余额支付调用
    // wx.cloud.callFunction({
    //   name: 'balancePay',
    //   data: {
    //     orderId: this.data.orderId,
    //     amount: this.data.amount
    //   },
    //   success: res => {
    //     if (res.result && res.result.success) {
    //       wx.showToast({
    //         title: '支付成功',
    //         icon: 'success'
    //       });
    //       
    //       // 清除定时器
    //       if (this.data.timer) {
    //         clearInterval(this.data.timer);
    //       }
    //       
    //       // 跳转到订单详情页
    //       setTimeout(() => {
    //         wx.redirectTo({
    //           url: `/pages/order/detail?id=${this.data.orderId}`
    //         });
    //       }, 1500);
    //     } else {
    //       wx.showToast({
    //         title: res.result.message || '支付失败',
    //         icon: 'none'
    //       });
    //     }
    //   },
    //   fail: err => {
    //     console.error('支付失败', err);
    //     wx.showToast({
    //       title: '支付失败，请重试',
    //       icon: 'none'
    //     });
    //   },
    //   complete: () => {
    //     wx.hideLoading();
    //   }
    // });
  },

  // 查看订单
  viewOrder: function() {
    wx.redirectTo({
      url: `/pages/order/detail?id=${this.data.orderId}`
    });
  },

  // 取消订单
  cancelOrder: function() {
    wx.showModal({
      title: '提示',
      content: '确定要取消订单吗？',
      success: (res) => {
        if (res.confirm) {
          // 显示加载中
          wx.showLoading({
            title: '取消中',
          });
          
          // 实际项目中应该从服务器取消订单
          // 这里模拟取消成功
          setTimeout(() => {
            wx.hideLoading();
            
            wx.showToast({
              title: '订单已取消',
              icon: 'success'
            });
            
            // 清除定时器
            if (this.data.timer) {
              clearInterval(this.data.timer);
            }
            
            // 返回首页
            setTimeout(() => {
              wx.switchTab({
                url: '/pages/index/index'
              });
            }, 1500);
          }, 1500);
          
          // 实际项目中的取消订单调用
          // wx.cloud.callFunction({
          //   name: 'cancelOrder',
          //   data: {
          //     orderId: this.data.orderId
          //   },
          //   success: res => {
          //     if (res.result && res.result.success) {
          //       wx.showToast({
          //         title: '订单已取消',
          //         icon: 'success'
          //       });
          //       
          //       // 清除定时器
          //       if (this.data.timer) {
          //         clearInterval(this.data.timer);
          //       }
          //       
          //       // 返回首页
          //       setTimeout(() => {
          //         wx.switchTab({
          //           url: '/pages/index/index'
          //         });
          //       }, 1500);
          //     } else {
          //       wx.showToast({
          //         title: res.result.message || '取消失败',
          //         icon: 'none'
          //       });
          //     }
          //   },
          //   fail: err => {
          //     console.error('取消订单失败', err);
          //     wx.showToast({
          //       title: '取消失败，请重试',
          //       icon: 'none'
          //     });
          //   },
          //   complete: () => {
          //     wx.hideLoading();
          //   }
          // });
        }
      }
    });
  }
});